package com.hro.rickpimines.project4.vogelspot1;

import android.content.Context;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

//extends SQLiteOpenHelper

public class DBAdapter
{

	public static final String KEY_ROWID = "_id";
	public static final String KEY_NAAM = "_naam";
	public static final String KEY_PICTURE = "_picture";
	public static final String KEY_COORDINATE = "_coordinate";

	private static final String TAG = "database";
	private static final String DATABASE_NAME = "vogelapp"; // *
	private static String DATABASE_PATH = "/data/data/com.hro.rickpimines.project4.vogelspot1/databases/"; // *
	private static final String DATABASE_TABLE = "vogels";
	private static final int DATABASE_VERSION = 1;
	private static final String DATABASE_CREATE = " create table vogels ( _id integer primary key autoincrement,  "
			+ "_naam text not null, _picture text not null, _coordinate text  )";

	private final Context context;
	private DatabaseHelper DBHelper;
	private SQLiteDatabase db;

	String myPath = DATABASE_PATH + DATABASE_NAME; // Combinatie van Database
													// path (zie *) en Database
													// naam (zie *)

	public DBAdapter(Context ctx)
	{
		this.context = ctx;
		DBHelper = new DatabaseHelper(context);
	}

	public boolean checkDataBase()
	{

		SQLiteDatabase checkDB = null;

		try {
			String myPath = DATABASE_PATH + DATABASE_NAME;
			checkDB = SQLiteDatabase.openDatabase(myPath, null,
					SQLiteDatabase.OPEN_READONLY);

		} catch (SQLiteException e) {

			// database does't exist yet.

		}

		if (checkDB != null) {

			checkDB.close();

		}

		return checkDB != null ? true : false;
	}

	private static class DatabaseHelper extends SQLiteOpenHelper
	{
		DatabaseHelper(Context context)
		{
			super(context, DATABASE_NAME, null, DATABASE_VERSION);
		}

		@Override
		public void onCreate(SQLiteDatabase db)
		{
			db.execSQL(DATABASE_CREATE);
			Vogels x = new Vogels();

			for (String vogel : x.getVogelNamen()) {
				db.execSQL("insert into vogels VALUES("
						+ x.getVogelId(KEY_NAAM) + ",0,0 ");
			}
		}

		@Override
		public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
		{
			Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
					+ newVersion + ", which will destroy all old data");
			db.execSQL("DROP TABLE IF EXISTS titles");
			onCreate(db);
		}
	}

	// ---opens the database---
	public DBAdapter open() throws SQLException
	{
		db = DBHelper.getWritableDatabase();
		return this;
	}

	// ---closes the database---
	public void close()
	{
		DBHelper.close();
	}

	/*
	 * 
	 * // ---insert a title into the database--- public long insertTitle(String
	 * isbn, String title, String publisher) { ContentValues initialValues = new
	 * ContentValues(); initialValues.put(KEY_ISBN, isbn);
	 * initialValues.put(KEY_TITLE, title); initialValues.put(KEY_PUBLISHER,
	 * publisher); return db.insert(DATABASE_TABLE, null, initialValues); }
	 * 
	 * // ---deletes a particular title--- public boolean deleteTitle(long
	 * rowId) { return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null)
	 * > 0; }
	 * 
	 * // ---retrieves all the titles--- public Cursor getAllTitles() { return
	 * db.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_ISBN, KEY_TITLE,
	 * KEY_PUBLISHER }, null, null, null, null, null); }
	 * 
	 * // ---retrieves a particular title--- public Cursor getTitle(long rowId)
	 * throws SQLException { Cursor mCursor = db.query(true, DATABASE_TABLE, new
	 * String[] { KEY_ROWID, KEY_ISBN, KEY_TITLE, KEY_PUBLISHER }, KEY_ROWID +
	 * "=" + rowId, null, null, null, null, null); if (mCursor != null) {
	 * mCursor.moveToFirst(); } return mCursor; }
	 * 
	 * // ---updates a title--- public boolean updateTitle(long rowId, String
	 * isbn, String title, String publisher) { ContentValues args = new
	 * ContentValues(); args.put(KEY_ISBN, isbn); args.put(KEY_TITLE, title);
	 * args.put(KEY_PUBLISHER, publisher); return db.update(DATABASE_TABLE,
	 * args, KEY_ROWID + "=" + rowId, null) > 0; }
	 */
}
